/*
 * @Descripttion:
 * @version:
 * @Author: sueRimn
 * @Date: 2022-04-25 14:39:53
 * @LastEditors: sueRimn
 * @LastEditTime: 2022-12-29 14:07:54
 */
import Vue from 'vue'
import vuex from 'vuex'
import getters from './getters'

// import createPersistedState from "vuex-persistedstate";

Vue.use(vuex)
// import user from "./modules/user";
// import menu from "./modules/menu";
//*********************************************************************** */
const modulesFiles = require.context('./modules', true, /\.js$/)
// you do not need `import app from './modules/app'`
// it will auto require all vuex module from modules file
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  // set './app.js' => 'app'
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const value = modulesFiles(modulePath)
  modules[moduleName] = value.default
  return modules
}, {})
//导入所有 vuex 模块，自动加入namespaced:true，用于解决vuex命名冲突，请勿修改。
Object.keys(modules).forEach((key) => {
  modules[key]['namespaced'] = true
})
//*********************************************************************** */
const store = new vuex.Store({
  modules: modules,
  getters
  // //vuex长久化存储
  // plugins: [
  //   createPersistedState({
  //     // storage: window.sessionStorage,
  //     key: "orderNav", // 存数据的key名   自定义的  要有语义化
  //     paths: ["menu", "user"] // 要把那些模块加入缓存
  //   })
  // ]
})

export default store
